package com.yoyo.itravel.service;

import com.yoyo.itravel.bean.Sight;
import com.yoyo.itravel.exceptions.SightCollectException;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.Map;

/**
 * @Description 用户表-景点表中间表：用户收藏景点服务层接口
 *
 * @author HZX
 * @date 2020/5/20 22:10
 */
public interface ISightCollectService {

    /**
     * @Description 插入收藏数据
     *
     * @param
     * @return int
     */
    boolean addCollect(String userId, String sightId, Date collectTime) throws SightCollectException;

    /**
     * @Description 通过用户id和景点id删除景点收藏数据
     *
     * @param userId
     * @param sightId
     * @return int
     */
    boolean deleteCollect(String userId, String sightId) throws SightCollectException;

    /**
     * @Description 通过用户id查询该用户收藏的所有景点信息【包括收藏时间】
     *
     * @Param userId
     * @Return java.util.Map<com.yoyo.itravel.bean.Sight , java.util.Date>  key：景点对象  value：景点收藏时间
     */
    Map<Sight, String> findAllCollectByUserId(String userId) throws SightCollectException;

    /**
     * @Description 通过用户id和景点id查找景点收藏数据【userId和sightId至少要有一个不为空】
     *
     * @Param userId
     * @Param sightId
     * @Return java.util.Map<java.lang.String , java.lang.Object>
     */
    Map<String, Object> findSightCollect(String userId, String sightId) throws SightCollectException;
}
